"""
继承入门

概述：
    Python中的继承指的是子类继承父类的属性和行为，现实世界中的继承指的是：子承父业

格式:
    class 类A(类B):
        pass

名词:
    类A: 子类，派生类
    类B: 父类，超类，基类

继承的优点：
    1. 提高代码的复用性
    2. 让类与类之间产生关系是多态的前提

继承的弊端
    1. 类和类之间的耦合性增强了，
    2. 父类不好的成员，子类想没有（属性和行为）都不行

开发原则： 高内聚，低耦合
    1. 内聚：类自己独立处理问题的能力（类内部没有多余的方法）
    2. 耦合： 类和类之间的关系

"""

# 定义一个父类
class Person:

    def __init__(self,  name, age, gender, address): # 定义共有的属性
        self.name = name
        self.age = age
        self.gender = gender
        self.address = address

    def speak(self):
        print(f'我叫{self.name}，我向大家问好')


# 子类，派生类
class Student(Person):
    pass

class Teacher(Person):
    pass

class Doctor(Person):
    pass


if __name__ == '__main__':
    s = Student('聂茹凤',22,'女','北京市海淀区')
    t = Teacher('张纪豪',33,'男','北京市朝阳区')
    d = Doctor('喜来乐',45,'男','河北沧州')

    s.speak()
    t.speak()
    d.speak()